1. Field of the Invention
The present invention relates to the field of computer system networks. In particular, the present invention pertains determining the current status and reachability of a specific client computer.
2. Description of the Related Art
The increasing levels of communication taking place between computers has given rise to increasing need for specialized networks that can insure inexpensive and timely transmission of data. A LAN (Local Area Network) is a group of computers connected by a common communication network. One of the goals of the earlier LANs was to avoid transmission using the Public Switched Telephone Network, (PSTN) which could result in undue delays, as well as ongoing costs which are avoidable through a LAN. With increasing sophistication of digital electronics, LANs can be segregated into sub-nets called virtual LANs (VLANs). A sub net is a select group of computers on a net that have some common object, goal or function which distinguishes them from other network computers.
The operation and utility of a VLAN can be illustrated by an example of a modern hospital, where computers are interconnected for communication. VLANs would further break down the hospital into smaller units. Patient health records, accounts receivable, disbursing, employee health benefits, pathology, neurology and ophthalmology each have separate concerns. Some memoranda, such as an upcoming Christmas party, might be relevant to all hospital employees. Other memoranda might be relevant only to those persons in accounts receivable. If all memoranda generated within the hospital were forwarded to all hospital personnel at all times, the time to read the memoranda could consume every working minute of every employee. Physicians would be so inundated with irrelevant memos that the healing of the sick would grind to a halt.
Virtual LANs provided a major step in solving this problem. Even though all computers in this hospital are on the same communication network, by using distinct VLAN identifier tags typically placed in the header of a message, only those computers capable of recognizing that particular identifier tag would process the memo. Accounts receivable would have its own identifier tag, as would disbursing, ophthalmology, the pathology lab, and every other department. The practical implementation of VLANs has proven somewhat problematic however.
The first problem is that many computer networks are heterogeneous, comprising both xe2x80x9ccompliantxe2x80x9d client computers (able to read VLAN identifier tags), and xe2x80x9cnon-compliantxe2x80x9d computers, which cannot recognize a message header containing the bit field required for a VLAN tag. If a message with a VLAN identifier tag is sent to a non-compliant computer, the message is simply ignored.
One solution to this problem has been the use of electronically configurable switches. To accommodate computers which are non-compliant, an individual port on a configurable switch can be configured to strip out any VLAN identifier tag. The message header is thereby reformatted to a form that is recognizable by a non-compliant computer.
A xe2x80x9cstack networkxe2x80x9d using such configurable switches however creates its own set of problems. If a user were to unplug a computer from its normal communication port on the LAN, and plug in to a communication port one desk away, the two ports may be routed into different ports on the configurable switches leading to the server computer. One port may be configured for compliant computers, and the other for non-compliant computers. By simply changing port connections, a client computer can thereby degrade its ability to communicate on the LAN.
A similar problem would be upgrading a client from non-compliant status to compliant status. Just as the bit field of a VLAN identifier tag renders the packet header unrecognizable to a legacy (non-compliant) computer, a compliant computer can not use VLAN identifier when communicating with a legacy computer.
Another problem with xe2x80x9cstack networksxe2x80x9d is their ability to segregate a network. Even if two xe2x80x9cintelligentxe2x80x9d switch ports are configured for compliant computers, they may each be dedicated to different VLAN identifier tags. If there were ten separate VLANs on the LAN, port 1 may limit its transmissions to messages with VLAN identifier #1, and strip out all other transmissions. Port 2 may similarly limit transmissions to messages with VLAN identifier tag #2. Accordingly, if someone were to take a computer to another location on the LAN, even if both locations were compliant, the client computer might be unable to receive transmissions in its new location.
Transmissions also go from a client to a server. If a heterogeneous mix of compliant and non-compliant clients were communicating to a server, the transmissions in a stack network would again go through configurable switches. To insure that all messages reach the server with the same size bit field in the header, a switch-port serving a non-compliant computer can be configured to insert a xe2x80x9cuniversal VLAN tagxe2x80x9d (a bit field the same size as a normal VLAN identifier tag) into the proper location in the message header, thereby enabling the server to receive and respond to the transmission. While solving one problem however, this process again creates another problem. If a switch port were configured to communicate with a legacy (non-compliant) client, and an upgraded (compliant) computer were to connect to that port, the client would now be sending a message with a VLAN identifier tag in the header.
One solution has been to employ a Management Information Specialist (MIS) to maintain a LAN. Switches and routers are continually reconfigured by the MIS to reflect the dynamics of VLAN usage. If a client computer at a given port is upgraded from non-compliant to compliant, the outlet ports on the switches are reconfigured by the MIS. Once again, however, a solution becomes a problem. Networks may have a thousand or more computers. A large network may require an entire staff of Management Information Specialists to maintain a network. This obviously increases operational costs of a company. Moreover, even the most efficient maintenance staff is unlikely to be able to reconfigure the network in such a timely manner that no transmissions are ever dropped. Any lag time in reconfiguration can result in lost transmissions.
Finally, with or without a stack-network of configurable switches, one problem remains wholly unresolved. When a message is rejected by a client, the server has no way of knowing that a message has gone undelivered. Therefore, the server will make no effort to re-send the message in a more readable format.
A need therefore exists for a method and apparatus for allowing a server to communicate to client computers on a heterogeneous network of compliant and non-compliant computers. A further need exists for a method and apparatus that will allow efficient communication on a dynamic network where compliant and non-compliant computers may be interchanged at various network communication ports. A further need exists for a method and apparatus of determining whether a client computer is compliant or non-compliant before attempting to transmit data to that client computer. A further need exists for determining with a high probability whether transmission from a server to a client was successfully executed. A further need exists for a method and apparatus that will respond to dynamic changes in the status of client computers by reconfiguring itself without the need of a costly maintenance staff. A further need exists for a method and apparatus that will respond to dynamic changes in the status of client computers by reconfiguring itself in-or-near real time, thereby avoiding the failed communications that necessarily attend a lengthy or delayed reconfiguration. A further need exists for portability in a network communications system, wherein computers can be moved to different ports of a network without degrading the communication ability of that network.
The present invention provides a system and method allowing a server to communicate to client computers on a heterogeneous network of compliant and non-compliant computers. The present invention further provides a method and apparatus that will allow efficient communication on a dynamic network where compliant and non-compliant computers may be interchanged at various network communication ports. The present invention further provides a system and method for determining whether a client computer is compliant or non-compliant before attempting to transmit data to that client computer. The present invention further provides a system and method for determining with a high probability whether transmission from a server to a client was successfully executed. The present invention further provides a system and method for a server to respond to dynamic changes in the status of client computers by reconfiguring itself without the need of a costly maintenance staff. The present invention further provides a system and method that will respond to dynamic changes in the status of client computers by reconfiguring itself in-or-near real time, thereby avoiding the failed communications that necessarily attend a lengthy or delayed reconfiguration. The present invention further provides a system and method for portability in a network communications system, wherein computers can be moved to different ports of a network without degrading the communication ability of that network.
According to one embodiment of the present invention, the reachability of client computers communicatively coupled in a computer network to a server computer is determined. The server uses an I.C.M.P. xe2x80x9cpingxe2x80x9d in place of the data payload of a normal message, and then inserts a VLAN identifier tag into the proper data segment of the header of the packet. This tagged packet is transmitted on a network to determine if a client corresponding to that identifier tag is present on the network and able to read the identifier tag. A client computer that cannot recognize a message header containing a VLAN tag will simply ignore the message. Therefore, if the client computer transmits a ping response within a predetermined period of time, the client is known to be compliant with the identifier tags, and the server memory is updated to reflect the xe2x80x9ccompliantxe2x80x9d status of the client computer. If no responsive echo is received after a predetermined time period, the client is known to be non-compliant. The server memory contains a plurality of identifier tags along with their last known status. If, as a result of the tagged ping-packet transmission the results of the client status are determined to have changed, the memory is updated accordingly.
These and other objects and advantages of the present invention will become obvious to those of ordinary skill in the art after reading the following detailed description of the preferred embodiments which are illustrated in the various drawing figures.